home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 65.zip / BS1 part 65 / DevPac v3.02b.adf / include / libraries / dos.i < prev    next >
Text File  |  1991-11-20  |  6KB  |  169 lines

  1.     IFND    LIBRARIES_DOS_I
  2. LIBRARIES_DOS_I SET    1
  3. **
  4. **    $Filename: libraries/dos.i $
  5. **    $Release: 1.3 $
  6. **
  7. **    Standard assembler header for AmigaDOS 
  8. **
  9. **    (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.  
  13. *      IFND EXEC_TYPES_I
  14. *      INCLUDE "exec/types.i"
  15. *      ENDC
  16.  
  17.  
  18. DOSNAME        MACRO
  19.       DC.B  'dos.library',0
  20.       ENDM
  21.  
  22. * Predefined Amiga DOS global constants 
  23.  
  24. DOSTRUE          EQU     -1
  25. DOSFALSE      EQU      0
  26.  
  27. * Mode parameter to Open() 
  28. MODE_OLDFILE         EQU   1005      * Open existing file read/write 
  29. *                  * positioned at beginning of file. 
  30. MODE_NEWFILE         EQU   1006      * Open freshly created file (delete 
  31. *                  * old file) read/write        
  32. MODE_READWRITE         EQU   1004      * Open old file w/exclusive lock
  33. * Relative position to Seek() 
  34. OFFSET_BEGINNING     EQU   -1      * relative to Beginning Of File 
  35. OFFSET_CURRENT         EQU    0      * relative to Current file position 
  36. OFFSET_END         EQU    1      * relative to End Of File    
  37.  
  38. OFFSET_BEGINING        EQU      OFFSET_BEGINNING     * Ancient compatibility
  39.  
  40. BITSPERBYTE         EQU   8
  41. BYTESPERLONG         EQU   4
  42. BITSPERLONG         EQU   32
  43. MAXINT             EQU   $7FFFFFFF
  44. MININT             EQU   $80000000
  45.  
  46. * Passed as type to Lock() 
  47. SHARED_LOCK         EQU   -2    ; File is readable by others 
  48. ACCESS_READ         EQU   -2    ; Synonym
  49. EXCLUSIVE_LOCK         EQU   -1    ; No other access allowed    
  50. ACCESS_WRITE         EQU   -1    ; Synonym
  51.  
  52.  
  53.  STRUCTURE DateStamp,0 
  54.    LONG     ds_Days        ; Number of days since Jan. 1, 1978
  55.    LONG     ds_Minute        ; Number of minutes past midnight 
  56.    LONG     ds_Tick        ; Number of ticks past minute 
  57.    LABEL ds_SIZEOF        ; DateStamp 
  58. TICKS_PER_SECOND EQU 50        ; Number of ticks in one second 
  59.  
  60. * Returned by Examine() and ExInfo() 
  61.  STRUCTURE FileInfoBlock,0
  62.    LONG      fib_DiskKey
  63.    LONG      fib_DirEntryType    ; Type of Directory. If < 0, then a plain file.
  64.                 ; If > 0 a directory 
  65.    STRUCT fib_FileName,108    ; Null terminated. Max 30 chars used for now 
  66.    LONG      fib_Protection    ; bit mask of protection, rwxd are 3-0.         
  67.    LONG      fib_EntryType
  68.    LONG      fib_Size        ; Number of bytes in file 
  69.    LONG      fib_NumBlocks        ; Number of blocks in file 
  70.    STRUCT fib_DateStamp,ds_SIZEOF ; Date file last changed.
  71.    STRUCT fib_Comment,80    ; Null terminated. Comment associated with file 
  72.    STRUCT fib_Reserved,36
  73.    LABEL  fib_SIZEOF        ; FileInfoBlock 
  74.  
  75. * FIB stands for FileInfoBlock 
  76. * FIBB are bit definitions, FIBF are field definitions 
  77.    BITDEF   FIB,SCRIPT,6    ; program is an execute script
  78.    BITDEF   FIB,PURE,5        ; program is reentrant and reexecutable
  79.    BITDEF   FIB,ARCHIVE,4    ; cleared whenever file is changed
  80.    BITDEF   FIB,READ,3        ; ignored by the system
  81.    BITDEF   FIB,WRITE,2        ; ignored by the system
  82.    BITDEF   FIB,EXECUTE,1    ; ignored by the system
  83.    BITDEF   FIB,DELETE,0    ; prevent file from being deleted
  84.  
  85.  
  86. * All BCPL data must be long word aligned.  BCPL pointers are the long word
  87. * address (i.e byte address divided by 4 (>>2))
  88.  
  89. * Macro to indicate BCPL pointers
  90. BPTR     MACRO                * Long word pointer
  91.      LONG      \1
  92.      ENDM
  93. BSTR     MACRO                * Long word pointer to BCPL string.
  94.      LONG      \1
  95.      ENDM
  96.  
  97. * #define BADDR( bptr ) (bptr << 2) * Convert BPTR to byte addressed pointer
  98.  
  99. * BCPL strings have a length in the first byte and then the characters.
  100. * For example:    s[0]=3 s[1]=S s[2]=Y s[3]=S
  101.  
  102. * returned by Info() 
  103.  STRUCTURE InfoData,0
  104.    LONG id_NumSoftErrors    * number of soft errors on disk 
  105.    LONG id_UnitNumber        * Which unit disk is (was) mounted on 
  106.    LONG id_DiskState        * See defines below 
  107.    LONG id_NumBlocks        * Number of blocks on disk 
  108.    LONG id_NumBlocksUsed    * Number of block in use 
  109.    LONG id_BytesPerBlock   
  110.    LONG id_DiskType        * Disk Type code
  111.    BPTR id_VolumeNode        * BCPL pointer to volume node
  112.    LONG id_InUse        * Flag, zero if not in use
  113.    LABEL id_SIZEOF        * InfoData 
  114.  
  115. * ID stands for InfoData 
  116. *         Disk states
  117. ID_WRITE_PROTECTED    EQU    80    * Disk is write protected 
  118. ID_VALIDATING        EQU    81    * Disk is currently being validated 
  119. ID_VALIDATED        EQU    82    * Disk is consistent and writeable 
  120. *       Disk types 
  121. ID_NO_DISK_PRESENT    EQU -1
  122. ID_UNREADABLE_DISK    EQU  ('B'<<24)!('A'<<16)!('D'<<8)
  123. ID_NOT_REALLY_DOS    EQU  ('N'<<24)!('D'<<16)!('O'<<8)!('S')
  124. ID_DOS_DISK        EQU  ('D'<<24)!('O'<<16)!('S'<<8)
  125. ID_KICKSTART_DISK    EQU  ('K'<<24)!('I'<<16)!('C'<<8)!('K')
  126.  
  127. * Errors from IoErr(), etc. 
  128. ERROR_NO_FREE_STORE          EQU  103
  129. ERROR_TASK_TABLE_FULL          EQU  105
  130. ERROR_LINE_TOO_LONG          EQU  120
  131. ERROR_FILE_NOT_OBJECT          EQU  121
  132. ERROR_INVALID_RESIDENT_LIBRARY      EQU  122
  133. ERROR_OBJECT_IN_USE          EQU  202
  134. ERROR_OBJECT_EXISTS          EQU  203
  135. ERROR_OBJECT_NOT_FOUND          EQU  205
  136. ERROR_ACTION_NOT_KNOWN          EQU  209
  137. ERROR_INVALID_COMPONENT_NAME      EQU  210
  138. ERROR_INVALID_LOCK          EQU  211
  139. ERROR_OBJECT_WRONG_TYPE          EQU  212
  140. ERROR_DISK_NOT_VALIDATED      EQU  213
  141. ERROR_DISK_WRITE_PROTECTED      EQU  214
  142. ERROR_RENAME_ACROSS_DEVICES      EQU  215
  143. ERROR_DIRECTORY_NOT_EMPTY      EQU  216
  144. ERROR_DEVICE_NOT_MOUNTED      EQU  218
  145. ERROR_SEEK_ERROR          EQU  219
  146. ERROR_COMMENT_TOO_BIG          EQU  220   
  147. ERROR_DISK_FULL              EQU  221
  148. ERROR_DELETE_PROTECTED          EQU  222
  149. ERROR_WRITE_PROTECTED          EQU  223 
  150. ERROR_READ_PROTECTED          EQU  224
  151. ERROR_NOT_A_DOS_DISK          EQU  225
  152. ERROR_NO_DISK              EQU  226
  153. ERROR_NO_MORE_ENTRIES          EQU  232
  154.  
  155. * These are the return codes used by convention by AmigaDOS commands 
  156. * See FAILAT and IF for relvance to EXECUTE files             
  157. RETURN_OK              EQU     0  * No problems, success 
  158. RETURN_WARN              EQU     5  * A warning only 
  159. RETURN_ERROR              EQU    10  * Something wrong 
  160. RETURN_FAIL              EQU    20  * Complete or severe failure
  161.  
  162. * Bit numbers that signal you that a user has issued a break
  163.     BITDEF    SIGBREAK,CTRL_C,12
  164.     BITDEF    SIGBREAK,CTRL_D,13
  165.     BITDEF    SIGBREAK,CTRL_E,14
  166.     BITDEF    SIGBREAK,CTRL_F,15
  167.  
  168.     ENDC    ; LIBRARIES_DOS_I
  169.